<div id="maincontent">

<h1>ECMAScript 函数概述</h1>

<div id="tpn">

</div>


<div>
<h2>什么是函数？</h2>

<p>函数是一组可以随时随地运行的语句。</p>

<p>函数是 ECMAScript 的核心。</p>

<p>函数是由这样的方式进行声明的：关键字 function、函数名、一组参数，以及置于括号中的待执行代码。</p>

<p>函数的基本语法是这样的：</p>

<pre>function <i>functionName(arg0, arg1, ... argN)</i> {
  <i>statements</i>
}
</pre>

<p>例如：</p>

<pre>
function sayHi(sName, sMessage) {
  alert(&quot;Hello &quot; + sName + sMessage);
}
</pre>
</div>


<div>
<h2>如何调用函数？</h2>

<p>函数可以通过其名字加上括号中的参数进行调用，如果有多个参数。</p>

<p>如果您想调用上例中的那个函数，可以使用如下的代码：</p>

<pre>sayHi(&quot;David&quot;, &quot; Nice to meet you!&quot;)</pre>

<p>调用上面的函数 sayHi() 会生成一个警告窗口。您可以<a target="_blank" href="/tiy/t.asp?f=jseg_function_alert">亲自试一试这个例子</a>。</p>
</div>


<div>
<h2>函数如何返回值？</h2>

<p>函数 sayHi() 未返回值，不过不必专门声明它（像在 Java 中使用 void 那样）。</p>

<p>即使函数确实有值，也不必明确地声明它。该函数只需要使用 return 运算符后跟要返回的值即可。</p>

<pre>
function sum(iNum1, iNum2) {
  return iNum1 + iNum2;
}
</pre>

<p>下面的代码把 sum 函数返回的值赋予一个变量：</p>

<pre>
var iResult = sum(1,1);
alert(iResult);	<span>//输出 &quot;2&quot;</span>
</pre>

<p>另一个重要概念是，与在 Java 中一样，函数在执行过 return 语句后立即停止代码。因此，return 语句后的代码都不会被执行。</p>

<p>例如，在下面的代码中，alert 窗口就不会显示出来：</p>

<pre>
function sum(iNum1, iNum2) {
  return iNum1 + iNum2;
  alert(iNum1 + iNum2);
}
</pre>

<p>一个函数中可以有多个 return 语句，如下所示：</p>

<pre>
function diff(iNum1, iNum2) {
  if (iNum1 &gt; iNum2) {
    return iNum1 - iNum2;
  } else {
    return iNum2 - iNum1;
  }
}
</pre>

<p>上面的函数用于返回两个数的差。要实现这一点，必须用较大的数减去较小的数，因此用 if 语句决定执行哪个 return 语句。</p>

<p>如果函数无返回值，那么可以调用没有参数的 return 运算符，随时退出函数。</p>

<p>例如：</p>

<pre>
function sayHi(sMessage) {
  if (sMessage == &quot;bye&quot;) {
    return;
  }

  alert(sMessage);
}
</pre>

<p>这段代码中，如果 sMessage 等于 &quot;bye&quot;，就永远不显示警告框。</p>

<p class="note"><span>注释：</span>如果函数无明确的返回值，或调用了没有参数的 return 语句，那么它真正返回的值是 undefined。</p>
</div>


<div id="bpn">

</div>




</div>
